package exam_1;

//    1. 有1、2、3、4 四个数字，能组成多少个互不相同且无重复数字的三位数？都是多少？
//    *程序分析：可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
//    掉不满足条件的排列。
//
//    2. 判断1-100之间有多少个素数，并输出所有素数。
//    *程序分析：判断素数的方法：如果该数只能被1和自己本身整除而不能被其他数整除，则该数为素数。(例如3，5等等)
//
//    3. 随机生成十个数，然后电脑找出最大的数.(涉及数组及随机数，有能力的同学可尝试)
//    *该题太简单，无需分析啦~~
//
//    4. 一个10万以内的整数，它加上100后是一个完全平方数，再加上168又是一个完全平方数，请问该数是多少？
//    *该题太简单，无需分析啦~~
//
//    5. 输出九九乘法表
//
//    6. 用户输入一个数（小于10位），然后将该数逆向输出!
//    *该程序用到取"%"的思想.
//
//    7. 题目：求s=a+aa+aaa+aaaa+aa...a的值，其中a是一个数字。例如2+22+222+2222+22222(此时
//    　　　共有5个数相加)，几个数相加有键盘控制。
//
//    8.  任意输入一个整数（小于10位），求它的位数
//
//    9.  题目：打印出（100-999）内所有的“水仙花数”，所谓“水仙花数”是指一个三位数，其各位数字立方和等于该数本身。
//    例如：153是一个“水仙花数”，因为153=1的三次方＋5的三次方＋3的三次方。
//    1.程序分析：利用for循环控制100-999个数，每个数分解出个位，十位，百位。
//
//
//    10. 计算1000以内所有不能被7整除的整数之和。

import java.util.ArrayList;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        ArrayList list_1 = new ArrayList();
        ArrayList list_2 = new ArrayList();
        int[] arr_before = new int[100];
        int[] arr_over = new int[24];

        int i, j, k;
        int a, b, c;
        int index = -1;
        int length;

        //第一步筛选
        for (i=1; i<5; i++)
            for (j=1; j<5; j++)
                for (k=1; k<5; k++) {
                    index++; //记录存入数组的下标
                    arr_before[index] = i*100 + j*10 + k; //放入所有还有1，2，3，4的值的三位数
                }

        length = index + 1; //最后一个下标的值加1就是数组已经使用的长度
        index = -1;

        for (i=0; i<length; i++) {
            a = arr_before[i]%10; //个位
            b = arr_before[i]/10%10; //十位
            c = arr_before[i]/100%10; //百位

            //将不重复的值放入新的数组
            if (a!=b && a!=c && b!=c) {
                index++;
                arr_over[index] = a*100 + b*10 + c;
            }
        }

        //排序
        Arrays.sort(arr_over);

        length = index + 1;
        for (i=0; i<length; i++) {
            System.out.print(arr_over[i] + " ");
        }
        System.out.println("\n总共为" + length + "个");
    }
}
